﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Project.cs" company="DissingNellemann">
//   
// All rights reserved </copyright>
// <summary>
//   The project.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
namespace Website.Models.ViewModels
{
    using System;
    using System.Collections.Generic;

    /// <summary>
    ///     The project.
    /// </summary>
    public class Project
    {
        #region Public Properties

        /// <summary>
        ///     Gets or sets the date.
        /// </summary>
        public DateTime? Date { get; set; }

        /// <summary>
        ///     Gets or sets the groups.
        /// </summary>
        public List<Guid> Groups { get; set; }

        /// <summary>
        ///     Gets or sets the is national.
        /// </summary>
        public string IsNational { get; set; }

        /// <summary>
        ///     Gets or sets the location.
        /// </summary>
        public Guid Location { get; set; }

        /// <summary>
        ///     Gets or sets the name.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        ///     Gets or sets the owner projects.
        /// </summary>
        public List<Guid> OwnerProjects { get; set; }

        /// <summary>
        ///     Gets or sets the participants.
        /// </summary>
        public ICollection<Guid> Participants { get; set; }

        /// <summary>
        ///     Gets or sets the status not r and d.
        /// </summary>
        public StatusNotRAndD StatusNotRAndD { get; set; }

        /// <summary>
        ///     Gets or sets the status not started.
        /// </summary>
        public ProjectMeetingStatus ProjectMeetingStatus { get; set; }

        /// <summary>
        ///     Gets or sets the status patents.
        /// </summary>
        public StatusPatents StatusPatents { get; set; }

        /// <summary>
        ///     Gets or sets the status r and d.
        /// </summary>
        public StatusRAndD StatusRAndD { get; set; }
        
        /// <summary>
        ///     Gets or sets the the project.
        /// </summary>
        public Guid TheProject { get; set; }

        #endregion
    }

    /// <summary>
    ///     The status not started.
    /// </summary>
    public class ProjectMeetingStatus
    {
        #region Public Properties

        /// <summary>
        ///     Gets or sets the application text.
        /// </summary>
        public string ApplicationText { get; set; }

        /// <summary>
        ///     Gets or sets the funds application.
        /// </summary>
        public List<Guid> FundsApplication { get; set; }

        /// <summary>
        ///     Gets or sets the funds guidance.
        /// </summary>
        public List<Guid> FundsGuidance { get; set; }

        /// <summary>
        ///     Gets or sets the guidance text.
        /// </summary>
        public string GuidanceText { get; set; }

        /// <summary>
        ///     Gets or sets the innovation and ideas.
        /// </summary>
        public List<Guid> InnovationAndIdeas { get; set; }

        /// <summary>
        ///     Gets or sets the demonstration.
        /// </summary>
        public List<Guid> Demonstration { get; set; }

        /// <summary>
        ///     Gets or sets the financing.
        /// </summary>
        public List<Guid> Financing { get; set; }

        /// <summary>
        ///     Gets or sets the financing comments.
        /// </summary>
        public string FinancingComments { get; set; }

        /// <summary>
        ///     Gets or sets the roles.
        /// </summary>
        public List<Guid> Roles { get; set; }


        #endregion
    }

    /// <summary>
    ///     The status patents.
    /// </summary>
    public class StatusPatents
    {
        #region Public Properties

        /// <summary>
        ///     Gets or sets the patent name.
        /// </summary>
        public string PatentName { get; set; }

        #endregion
    }

    /// <summary>
    ///     The status not r and d.
    /// </summary>
    public class StatusNotRAndD
    {
        #region Public Properties

        /// <summary>
        ///     Gets or sets the more information.
        /// </summary>
        public string MoreInformation { get; set; }

        /// <summary>
        ///     Gets or sets the type.
        /// </summary>
        public Guid Type { get; set; }

        #endregion
    }



    /// <summary>
    ///     The status r and d.
    /// </summary>
    public class StatusRAndD
    {
        #region Public Properties

        /// <summary>
        ///     Gets or sets the more information.
        /// </summary>
        public string MoreInformation { get; set; }

        /// <summary>
        ///     Gets or sets the type.
        /// </summary>
        public Guid Type { get; set; }

        #endregion
    }
}